package com.eastfair.home.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.core.base.R;
import com.eastfair.home.dto.HomeServiceItemDTO;
import com.eastfair.home.entity.HomeServiceItem;
import com.eastfair.home.vo.HomeServiceItemVO;
import com.eastfair.venueservice.dto.ServiceItemDTO;
import com.eastfair.venueservice.dto.ServiceItemQuery;
import com.eastfair.venueservice.vo.ServiceItemVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 服务项
 * </p>
 *
 * @author linan
 * @date 2022-07-28
 */
public interface HomeServiceItemService extends SuperService<HomeServiceItem> {
    /**
     * do转vo
     * @param model
    */
    HomeServiceItemVO doToVo(HomeServiceItem model);
   /**
    * do转vo
    * @param modelList
   */
    List<HomeServiceItemVO> doToVos(List<HomeServiceItem> modelList);


   /**
    * 通用查询
    *
    * @param modelDTO DTO
    * @param ids 主键id集合
    * @return list
    */
   List<HomeServiceItem> list(HomeServiceItemDTO modelDTO, List<Long> ids);

  /**
  * 通用查询
  *
  * @param modelDTO DTO
  * @param ids 主键id集合
  * @return list
  */
  List<HomeServiceItem> listOfCache(HomeServiceItemDTO modelDTO, List<Long> ids);

    /**
     * 添加服务项
     * @param serviceItemDTO serviceItemDTO
     * @return R<Boolean>
     */
    R<Boolean> addServiceItem(ServiceItemDTO serviceItemDTO);

    /**
     * 修改服务项
     * @param serviceItemDTO serviceItemDTO
     * @return R<Boolean>
     */
    R<Boolean> updateServiceItem(ServiceItemDTO serviceItemDTO);

    /**
     * 上架
     * @param serviceItemDTO serviceItemDTO
     * @return R<Boolean>
     */
    R<Boolean> shelfService(ServiceItemDTO serviceItemDTO);

    /**
     * 下架
     * @param serviceItemDTO
     * @return R<Boolean>
     */
    R<Boolean> offShelfService(ServiceItemDTO serviceItemDTO);

    /**
     * 删除
     * @param serviceItemDTO serviceItemDTO
     * @return R<Boolean>
     */
    R<Boolean> delHomeServiceItemById(ServiceItemDTO serviceItemDTO);

    /**
     * 主场服务项列表
     * @param params
     * @return IPage
     */
    IPage<ServiceItemVO> queryServiceItemList(PageParams<ServiceItemQuery> params);
}
